package org.codehaus.mojo.wagon;

import org.apache.maven.plugins.annotations.Parameter;

/**
 * Provides base functionality for dealing with I/O using single wagon.
 */
public abstract class AbstractDoubleWagonMojo extends AbstractWagonMojo {

    /**
     * The URL to the source repository.
     */
    @Parameter(property = "wagon.source", required = true)
    protected String source;

    /**
     * The URL to the target repository.
     */
    @Parameter(property = "wagon.target", required = true)
    protected String target;

    /**
     * settings.xml's server id of the source repository. This is used when wagon needs extra authentication
     * information.
     */
    @Parameter(property = "wagon.sourceId", defaultValue = "source")
    protected String sourceId;

    /**
     * settings.xml's server id of the target repository. This is used when wagon needs extra authentication
     * information.
     */
    @Parameter(property = "wagon.targetId", defaultValue = "target")
    protected String targetId;

    /**
     * Optimize the upload by locally compressed all files in one bundle, upload the bundle, and finally remote
     * uncompress the bundle. This only works with SCP's URL
     */
    @Parameter(property = "wagon.optimize", defaultValue = "false")
    protected boolean optimize = false;

}
